一. 抽象类和抽象方法
- 有 abstract 修饰的类称为 “抽象类”, 它只定义 “有什么方法”, 而不用实现这些方法. 因为没有实现方法, 所以抽象类就不能实例化. 但可以声明抽象类变量, 用来引用实现了所有抽象方法的子类.
- 在方法名前加上 abstract 就形成抽象方法, 只有方法声明, 没有实现代码.
二. 抽象类和抽象方法的实例
1 | abstract class Person{ |
一个抽象类可以由非抽象方法和成员变量. 有抽象方法的一定是抽象类, 但是抽象类中的方法不一定是抽象方法.
三. 抽象类的三种”类型”
- 直接定义了一个抽象类
- 继承了一个抽象父类, 但没有完全实现父类包含的抽象方法
- 实现了一个接口, 但没有完全实现此接口所包含的抽象方法
四. 为什么要有抽象类
我们可以定义一个表示 “人” 的类, 也可以定义一个表示 “动物” 的类, 但实际上我们还可以抽象出一个 “生物类”, 这个类是前两个的父类. 但是有可能在这个类中, 只知道有某种方法, 而不知道该怎么实现. 这种情况下, 就可以使用抽象类, 不需要写出具体的方法, 只需要列出有哪些方法就好了.